import { RMIProxyObject } from "../../Engine/RMI/RMIProxyObject";
import { IShopPrx } from "./IShopPrx";
import { AMI_IShop_buyBack } from "./AMI_IShop_buyBack";
import { SerializeStream } from "../../Framework/Serialize/SerializeStream";
import { SeqStringHelper } from "../Public/SeqStringHelper";
import { Outgoing } from "../../Engine/RMI/Outgoing";
import { AMI_IShop_buyIntegralShopItem } from "./AMI_IShop_buyIntegralShopItem";
import { AMI_IShop_buyItem } from "./AMI_IShop_buyItem";
import { AMI_IShop_buyItemAndUse } from "./AMI_IShop_buyItemAndUse";
import { AMI_IShop_buyNpcShopItem } from "./AMI_IShop_buyNpcShopItem";
import { SEntityId } from "../Public/SEntityId";
import { AMI_IShop_getContriShopBuyRecord } from "./AMI_IShop_getContriShopBuyRecord";
import { AMI_IShop_getCostReturn } from "./AMI_IShop_getCostReturn";
import { AMI_IShop_getGangFightsBuyRecord } from "./AMI_IShop_getGangFightsBuyRecord";
import { AMI_IShop_getIntegralExchangeRecords } from "./AMI_IShop_getIntegralExchangeRecords";
import { AMI_IShop_getWrestleBuyRecord } from "./AMI_IShop_getWrestleBuyRecord";
import { AMI_IShop_integralExchange } from "./AMI_IShop_integralExchange";
import { AMI_IShop_openIntegralShop } from "./AMI_IShop_openIntegralShop";
import { AMI_IShop_repairAllWeaponCost } from "./AMI_IShop_repairAllWeaponCost";
import { AMI_IShop_repairWeapon } from "./AMI_IShop_repairWeapon";
import { ERepairType } from "./ERepairType";
import { AMI_IShop_sellItem } from "./AMI_IShop_sellItem";
import { AMI_IShop_sellList } from "./AMI_IShop_sellList";
type int = number;
//class IShopPrxHelper
    
    export  class IShopPrxHelper extends RMIProxyObject implements IShopPrx
    {
        constructor()
        {
            
            super();name = "IShop";
            return;
        }

        public buyBack_async(arg1: AMI_IShop_buyBack, arg2: Array<any>): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("buyBack");
            var loc3=new SerializeStream();
            SeqStringHelper.write(loc3, arg2);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public buyIntegralShopItem_async(arg1: AMI_IShop_buyIntegralShopItem, arg2: int, arg3: int, arg4: int): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("buyIntegralShopItem");
            var loc3;
            (loc3 = new SerializeStream()).writeInt(arg2);
            loc3.writeInt(arg3);
            loc3.writeInt(arg4);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public buyItem_async(arg1: AMI_IShop_buyItem, arg2: int, arg3: int, arg4: int, arg5: int, arg6: int): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("buyItem");
            var loc3;
            (loc3 = new SerializeStream()).writeInt(arg2);
            loc3.writeInt(arg3);
            loc3.writeInt(arg4);
            loc3.writeInt(arg5);
            loc3.writeInt(arg6);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public buyItemAndUse_async(arg1: AMI_IShop_buyItemAndUse, arg2: int, arg3: int, arg4: int, arg5: int, arg6: int): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("buyItemAndUse");
            var loc3;
            (loc3 = new SerializeStream()).writeInt(arg2);
            loc3.writeInt(arg3);
            loc3.writeInt(arg4);
            loc3.writeInt(arg5);
            loc3.writeInt(arg6);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public buyNpcShopItem_async(arg1: AMI_IShop_buyNpcShopItem, arg2: SEntityId, arg3: int, arg4: int): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("buyNpcShopItem");
            var loc3=new SerializeStream();
            arg2.__write(loc3);
            loc3.writeInt(arg3);
            loc3.writeInt(arg4);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public getContriShopBuyRecord_async(arg1: AMI_IShop_getContriShopBuyRecord): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("getContriShopBuyRecord");
            var loc3=new SerializeStream();
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public getCostReturn_async(arg1: AMI_IShop_getCostReturn): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("getCostReturn");
            var loc3=new SerializeStream();
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public getGangFightsBuyRecord_async(arg1: AMI_IShop_getGangFightsBuyRecord): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("getGangFightsBuyRecord");
            var loc3=new SerializeStream();
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public getIntegralExchangeRecords_async(arg1: AMI_IShop_getIntegralExchangeRecords, arg2: int): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("getIntegralExchangeRecords");
            var loc3;
            (loc3 = new SerializeStream()).writeInt(arg2);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public getWrestleBuyRecord_async(arg1: AMI_IShop_getWrestleBuyRecord): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("getWrestleBuyRecord");
            var loc3=new SerializeStream();
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public integralExchange_async(arg1: AMI_IShop_integralExchange, arg2: int, arg3: int, arg4: int): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("integralExchange");
            var loc3;
            (loc3 = new SerializeStream()).writeInt(arg2);
            loc3.writeInt(arg3);
            loc3.writeInt(arg4);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public openIntegralShop_async(arg1: AMI_IShop_openIntegralShop, arg2: Boolean, arg3: int): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("openIntegralShop");
            var loc3;
            (loc3 = new SerializeStream()).writeBool(arg2);
            loc3.writeInt(arg3);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public repairAllWeaponCost_async(arg1: AMI_IShop_repairAllWeaponCost): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("repairAllWeaponCost");
            var loc3=new SerializeStream();
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public repairWeapon_async(arg1: AMI_IShop_repairWeapon, arg2: ERepairType, arg3: int, arg4: string, arg5: int): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("repairWeapon");
            var loc3=new SerializeStream();
            arg2.__write(loc3);
            loc3.writeInt(arg3);
            loc3.writeString(arg4);
            loc3.writeInt(arg5);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public sellItem_async(arg1: AMI_IShop_sellItem, arg2: int, arg3: Array<any>): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("sellItem");
            var loc3;
            (loc3 = new SerializeStream()).writeInt(arg2);
            SeqStringHelper.write(loc3, arg3);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public sellList_async(arg1: AMI_IShop_sellList): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("sellList");
            var loc3=new SerializeStream();
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public static /* const */NAME: string="Message.Game.IShop";
    }
